from django.db import models
from django.contrib.auth.models import User, UserManager

ESTADOS_CHOICES = (
	('A Estrenar', 'A Estrenar'),
	('Excelente', 'Excelente'),
	('Muy Bueno', 'Muy Bueno'),
	('Bueno', 'Bueno'),
	('Malo', 'Malo'),
	('-', '-'),
	#agregar las "para reciclar"/demoler
)

TIPO_CAMPO_CHOICES = (
	('', ''),
)

TIPO_PROPIEDAD_CHOICES = (
	('Casa', 'Casa'  ),
	('Departamento', 'Departamento'  ),
	('Campo', 'Campo'  ),
	('Terreno', 'Terreno'  ),
	('Quinta', 'Quinta'  ),
	('Local', 'Local'  ),
)

TIPO_OPERACION_CHOICES = (
	('Venta', 'Venta'),
	('Alquiler', 'Alquiler'),
)

CIUDADES_CHOICES = (
	('Rio Cuarto', 'Rio Cuarto'),
	('Cordoba', 'Cordoba'),
)

PROVINCIAS_CHOICES = (
	('Cordoba', 'Cordoba'),
)

class Propiedad(models.Model):
	#cantidad de visitas
	#agregar video e imagenes
	publicante  = models.ForeignKey(User, null = True)

	titulo      = models.CharField(max_length=100)

	descripcion_corta = models.CharField(max_length=200)
	descripcion = models.TextField()
	
	destacado   = models.BooleanField()
	
	provincia   = models.CharField(max_length=25, choices=PROVINCIAS_CHOICES)
	ciudad      = models.CharField(max_length=25, choices=CIUDADES_CHOICES)
	direccion   = models.CharField(max_length=25)
	
	tipo        = models.CharField(max_length=25, choices=TIPO_PROPIEDAD_CHOICES)
	estado      = models.CharField(max_length=25, choices=ESTADOS_CHOICES)
	
	precio      = models.IntegerField()

	fecha_publicacion = models.DateTimeField()

class Inmobiliaria(User):
	nombre      = models.CharField(max_length=25)
	direccion   = models.CharField(max_length=25)
	limite      = models.PositiveIntegerField()
	objects     = UserManager()

class Departamento(Propiedad):
	cantidad_habitaciones   = models.IntegerField()
	cantidad_ambientes      = models.IntegerField()
	cantidad_metros         = models.IntegerField()
	nro_piso                = models.IntegerField()
	cochera                 = models.BooleanField()
	balcon                  = models.BooleanField()
	vista_a_calle           = models.BooleanField()
	todos_los_servicios     = models.BooleanField()
	dependencia             = models.BooleanField()
	amoblado                = models.BooleanField()

class Casa(Propiedad):
	cantidad_habitaciones   = models.IntegerField()
	cantidad_banos          = models.IntegerField()
	cantidad_metros         = models.IntegerField()
	patio                   = models.BooleanField()
	garage                  = models.BooleanField()
	todos_los_servicios     = models.BooleanField()
	dependencia             = models.BooleanField()
	amoblado                = models.BooleanField()

class Local(Propiedad):
	cantidad_metros_cuadrados   = models.IntegerField()

class Terreno(Propiedad):
	todos_los_servicios     = models.BooleanField()

class Quinta(Propiedad):
	hectareas   = models.IntegerField()

class Campo(Propiedad):
	hectareas   = models.IntegerField()
	tipo_campo  = models.CharField(max_length=25, choices=TIPO_CAMPO_CHOICES)
